The present invention relates to a method of transferring packets and a device therefor. In particular, it relates to a method of transferring packets and a device corresponding to Multi Protocol Label Switching.
Internet Protocol (IP) network is becoming one of the important infrastructure which would replace the telephone network because of its low cost. Accordingly, achievement of high reliability which has been achieved in the conventional telephone network such as recovery in the event of a fault in the network, etc. and guarantee of Quality of Service (QoS) such as reduced delay time and low discarding rate are requested.
As a recovery system of a failure in the network, a high-speed path switching technique using Multi Protocol Label Switching (MPLS) is known. With reference to MPLS, there is a description in RFC 3031 of Internet Engineering Task Force (IETF). Also, with reference to a high-speed path switching technique using MPLS, there is a description in draft-ietf-mpls-rsvp-lsp-fastreroute-00.tx, Internet draft of IETF.
First, an outline of MPLS will be described. MPLS is a packet transfer system in which a router determines the destination of a packet according to a value of a label added to the packet. With reference to FIG. 1, the outline of the packet transfer using MPLS will be described.
MPLS network 100 of FIG. 1 comprises edge routers ER1 (141), ER2 (142), ER3 (143), ER4 (144), which are located at the ports of the network, and core routers CR1 (151), CR2 (152), CR3 (153), which are located in the MPLS network 100.
Each edge router accommodates a plurality of networks NA (161), NB (162), NC (163) and ND (164) which are connected with one another via the MPLS network. Each edge router receives a packet from a network that it accommodates, encapsulates the received packet by an MPLS encapsulation header, and transfers it into the MPLS network 100. In FIG. 1, among contents of the MPLS encapsulation header, a label alone is shown for the sake of convenience. For example, the edge router ER1 encapsulates a packet P1 (171) received from the network NA by the MPLS encapsulation header containing a label L11 (111), and transfers it to the CR1. At this point, MPLS encapsulation headers for an output line 181, the label L11, etc. are determined by using information in the header such as a Layer 3 transfer protocol (for example, IP) of the packet P1.
The core routers CR1, CR2 determine an output line and a new encapsulation header for outputting by using the MPLS encapsulation header. For example, upon receipt of the packet P1, the CR1 searches a label table held therein using a value of the label L11 added to the packet P1, and determines an output line 1020-1 and a label L12 (112) for outputting. The CR1 swaps the label L11 added to the packet P1 for the label L12 for outputting, and transmits the packet to the output line 1020-1. Hereinafter, a label added to a received packet is called an input label and a label newly added by a router when being transferred is called an output label. Likewise, the CR2 determines an output line 182 and an output label L13 (113) of the packet P1 to which the input label L12 is added, swaps the input label L12 for the output label L13, and transmits the packet to the output line 182.
Upon receipt of the packet P1 to which the label L13 is added, the edge router ER3, using the label L13 alone, or using the label L13 and information in the Layer 3 transfer protocol (for example, IP) header of the packet P1, determines a place to which the packet P1 is transmitted (in FIG. 1, Network NC) and the output line 183, removes an MPLS encapsulation header, and transmits the packet P1 to the line 183. A packet P2 is also transferred as described above.
As described above, the packet P1 is transmitted through a path between the routers ER1 and CR1, a path between the routers CR1 and CR2, and a path between the routers CR2 and ER3 by using labels L11, L12 and L13. Also, a packet P2 is transmitted through a path between the routers ER2 and CR1, a path between the routers CR1 and CR2, and a path between the routers CR2 and ER4 by using labels L21, L22 and L23. These paths are called Label Switched Paths (LSP). LSPs are set by a label distribution protocol, or set manually by a network administrator. Label distribution protocols include Label Distribution Protocol (LDP), Constraint-based Routing Label Distribution Protocol (CR-LDP), Extensions to Resource Reservation Protocol for LSP Tunnels (RSVP-TE), etc. Description is made with reference to LDP in RFC 3036 of IETF, with reference to CR-LDP, in draft-ietf-mpls-cr-ldp-04.txt, Internet Draft, and with reference to RSVP-TE, draft-ietf-mpls-rsvp-lsp-tunnel-08.txt, Internet Draft, respectively.
In MPLS, it is possible to explicitly set the LSP. Therefore, it can advantageously provide paths based on the requested communication quality for each traffic and achieve traffic engineering for performance optimization of the network.
Now, with reference to FIGS. 2 and 3, a high-speed path switching technique using MPLS, which is described in draft-swallow-rsvp-bypass-label-01.txt will be explained.
In this high-speed path switching technique, with respect to a plurality of LSPs set on the same line, only one LSP for switching when the line or next map router has a fault is set. Hereinafter, an LSP for switching in the case of failure is called a backup LSP, and an LSP during a normal operation is called a current LSP. Further, in the high-speed pass switching technique, for the purpose of saving the number of entries of the label table for determining an output label and an output line at the terminal router of the backup LSP, a label stacking technique to add two or more labels is used.
FIGS. 2 and 3 show the MPLS network 100 alone of FIG. 1, and the networks NA, NB, NC, ND are omitted.
FIG. 2 shows how packets are transferred when the line 1020-1 is normal. Further, FIG. 3 shows how packets are transferred in the case when a failure occurs in the line 1020-1 (indicated by “X” on the line 1020-1 of FIG. 3).
In FIG. 2, an LSP to which the packet P1 is transferred when the line 1020-1 is normal is called LSP1, and an LSP to which the packet P2 is transferred is called LSP2. A label used for transfer is the same as the one in FIG. 1. Labels used in the LSP1 are the label L11 (111) between the routers ER1 and CR1, the label L12 (112) between the routers CR1 and CR2, and the label L13 (113) between the routers CR2 and ER 3. Also, labels used in the LSP2 are the label L21 (121) between the routers ER2 and CR1, the label L22 (122) between the routers CR1 and CR2, and the label L23 (123) between the routers CR2 and ER4.
In FIG. 3, a backup LSP3 for the LSP1 and the LSP2 set on the line 1020-1 are set on the line 1020-2 between the routers CR1 and CR3 and on the line 184 between the routers CR3 and CR2. A label used between the routers CR1 and CR3 is called L31 (131), and a label used between the routers CR3 and CR2 is called L32 (132).
Referring to FIG. 3, a method of transferring the packet P1 when the line 1020-1 has a fault will be described. When detecting the fault on the line 1020-1, the core router CR1 of FIG. 3 changes the number of output labels corresponding to the input label L11 in the label table from one (L12) to two (L12 and L31). Further, the core router CR1 change the output line from the line 1020-1 to the line 1020-2. Upon receipt of the packet P1, the router CR1 determines the output labels L12, L31 and the output line 1020-2 from the input label L11. Then, the input label L11 is removed from the packet P1, and the two output labels are added by using a label stack function. At this point, the label L31 to be used in a backup LSP is added at a higher position (a position from which data is transferred with priority) of the label L12 used in the current LSP1. Then, the CR1 transmits the packet P1 to the line 1020-2. Upon receipt of the packet P1, the CR3 uses only the label L31 added at the higher position out of the two labels added to the packet P1, and determines the output line 184 and the output label L32. Among the input labels of the packet P1, the CR3 swaps only the label L31 added at the higher position for the output label 32, and transmits it to the line 184. Upon receipt of the packet P1 transmitted from the CR3, the CR2 acknowledges itself as a terminal of a backup LSP3 from a value of the label L32 added at a higher position among the two labels added to the packet P1, and recognizes that the output line and the output label should be determined by using the label L12 added at a lower position of the label L32. Then, the CR2 determines the output line 182 and the label L13 for outputting by using the Label L12. The CR2 removes the label L32 added to the packet P1, swaps the label L12 for the output label L13, and transmits it to the line 182.
A method of transferring the packet P2 is also the same as that of the packet P1 except the following points. Of the two output labels added by the CR1, the label L31 added at a higher position is the same as the case of the P1, but the other label is the L22, which is different. Further, an output label at the CR2 is the Label 23, which is also different. As described above, both the packet P1 transferred in the current LSP1 and the packet P2 transferred in the current LSP2 are transferred likewise in the LSP3.
Further, in FIG. 3, the CR2, which is the terminal of a backup LSP, recognizes itself to be a terminal of the backup LSP3 by using the label L32 at a higher position and that an output line and an output label should be determined by using the label (L12 or L22) added at a lower position of the L32. On this occasion, in the case of the CR2, a label table have to be searched twice according to a certain search method of the label table, which requires longer processing time. In order to avoid this problem, there is a method (Penultimate Hop Popping: hereinafter, called “PHP method”) which removes, in advance, a label added at a higher position by the last router but one before the terminal of the backup LSP. This method will be described referring to FIG. 4.
In FIG. 4, a label adding method and a packet transfer method are almost the same as the methods described in FIG. 3. However, a label adding method at the router CR3 immediately before the terminal router CR2 of the backup LSP3 is different. Using the label L31 added at a higher position of the received packets P1, P2, the CR3 acknowledges itself to be the router immediately before the terminal of the backup LSP3. The labels L12, L22 added at the lower position of the label L31 are the same labels used between CR1 and CR2 for transfer in the current LSPs, LSP1, LSP2. Accordingly, by using this label, the CR2 can determine the same output line and the output label as those of the current LSP. Therefore, the CR3 removes only the label L31 added at a higher position, and transmits the packet to the output line 184. The router CR2 receiving the packet uses one of the added labels L12, L22, and determines the output line and the output label. With the use of the PHP method described above, it is enough to search the label table in the CR2 only once, and the processing time becomes equal to the one in the transfer processing using the current LSP.
According to the prior art described above, a common backup LSP is set for a plurality of LSPs set in the same line. Therefore, compared to a method of setting a backup LSP for each of the LSPs, the number of LSPs to be managed by the router in the MPLS network can be reduced. For example, when the number of LSPs set in a line is “N”, the number of LSPs to be managed by the prior art 1 is “(N+1)”. However, when setting backup LSPs one to one with respect to a plurality of LSPs, the number of LSPs to be managed is “2N”.
However, in the above prior art, to guarantee communication quality in the backup LSP is not discussed. Now, the problems with regard to the guarantee of communication quality in the backup LSP will be described below.
For example, in FIG. 2, it is presumed that a group of packets P1 (hereinafter, referred to as “Traffic 1”) transferred by using the LSP1 is data that can be transferred by a Best Effort method such as E1ectronic mail and World Wide Web data, etc. Further, it is presumed that a group of packets P2 (hereinafter, referred to as “Traffic 2”) transferred by the LSP2 is data whose delay and delay variation should be reduced to minimum, such as data of a real-time system, Voice Over IP, etc.
In FIG. 2, each router can determine communication quality to be achieved by the LSP1 and the LSP2 according to information of an MPLS encapsulation header including a label, and performs communication quality control such as transferring the LSP2 prior to the LSP1. However, when the line has a fault (FIG. 3 or FIG. 4), Traffic 1 and Traffic 2 transferred by the current LSP1 and LSP2 are both transferred by the backup LSP3 using the same label. In this case, since the router CR3 on the LSP3 cannot recognize the communication quality of the current LSP, it cannot transfer the LSP2 prior to the LSP1. Accordingly, the guarantee of the communication quality with respect to Traffic 2 once transferred by the current LSP2 cannot be achieved on the backup LSP3.
Therefore, in order to perform the quality guarantee control (QoS control) of the packet, such a system is required that a router on the backup LSP can recognize the communication quality of the current LSP.